<?php
/**
 *  Template Interface
 *  Assignment of variables to the template is done using ArrayAccess methods
 *
 */
interface Yz_Template_Interface
{


    /**
     *  template file name stencils
     */
    const TEMPLATE_PATH_GLOBAL = '%{site}/templates/%{moduleName}.%{name}.%{type}';
    const TEMPLATE_PATH_MODULE = '%{modulePath}/templates/%{name}.%{type}';

    const META_KEYWORDS     = 'keywords';
    const META_DESCRIPTION  = 'description';
    const META_AUTHOR       = 'author';

    const RENDER_CACHE_NONE  = false;
    const RENDER_CACHE_EMPTY = null;

    /**
     * @return string
     */
    public function render(Yz_Template_Interface $parent=null);

    public function getFile();
    public function getParentFile();

}
